4
תגובות

לא עושה קוקיז :O

פתח ArielTador ,
if(isset($_POST['submit']))
                {
                  $nick = $_POST['nick'];
                  $password = md5(sha1(md5(sha1($_POST['password']))));
                  $sql = mysql_query("SELECT * FROM `admins` WHERE `nick`='$nick' AND `password`='$password'");
                  if(mysql_num_rows($sql) <= 0)
                  {
                    echo '<script>alert("שם משתמש או סיסמה אינם נכונים!");top.location="";</script>';
                  }
                  else
                  {
                    echo '<script>alert("התחברת בהצלחה!");top.location="";</script>';
                    setcookie('pn', $nick);
                    setcookie('pp', md5(sha1($_POST['password'])));
                  }
                }


הקוד הזה בעצם מבצע התחברות לאתר, אבל.. כשאני עושה את הקוד הזה בשרת wamp, הוא מתחבר ושומר קוקיז, אך כשאני עושה את זה באחסון רגיל, הוא מציג שהפרטים נכונים, ואת ההודעה "התחברת בהצלחה", אך הוא לא שומר קוקיז, אני מנסה שעתיים לסדר את זה, ואני לא מצליח. למה זה לא שומר קוקיז בשרת רגיל?

4 תשובות

avatar ענה ldbrgr ב 20 לדצמבר 2013 #

קודם כל, כדי לפתור את הבעיה:
http://phpguide.co.il/Can+not+send+session+cookie++headers+already+sent.htm
אתה לא רואה את השגיאה כי הדיבוג מכובה באחסון ובהגדרות של הWAMP הoutput_buffering פועל; תכבה אותו דרך php.ini ותפעיל דיבוג באחסון..
חוץ מזה,
הקוד חשוף ל SQLi,
עדיף לא לעבוד עם MySQL lib
וההצפנה(?) של הסיסמא - אוי גוועלד!
בהצלחה D:

avatar ענה ldbrgr ב 20 לדצמבר 2013 #

..

avatar ענה ArielTador ב 21 לדצמבר 2013 #

בקשר ל SQLi זה בסדר, כי רק אני משתמש בזה, אז אין צורך לאבטח :D
אגב, יש באתר עוד קוקיז, והם עובדים מצויין, אז למה פה זה לא עובד?

avatar ענה ldbrgr ב 21 לדצמבר 2013 #

כי בקוד הזה ספציפית אתה שולח פלט ללקוח לפני שאתה שולח כתרים (headers), אני לא יודע מה לגבי שאר האתר..
תעביר את הecho מתחת ל setcookie או שתפעיל output_buffering וזה יפתור את הבעיה.